/* SWI numbers for RDP (Demon) monitor.  */
#define SWI_WriteC                 0x0
#define SWI_Write0                 0x2
#define SWI_ReadC                  0x4
#define SWI_CLI                    0x5
#define SWI_GetEnv                 0x10
#define SWI_Exit                   0x11
#define SWI_EnterOS                0x16

#define SWI_GetErrno               0x60
#define SWI_Clock                  0x61
#define SWI_Time                   0x63
#define SWI_Remove                 0x64
#define SWI_Rename                 0x65
#define SWI_Open                   0x66

#define SWI_Close                  0x68
#define SWI_Write                  0x69
#define SWI_Read                   0x6a
#define SWI_Seek                   0x6b
#define SWI_Flen                   0x6c

#define SWI_IsTTY                  0x6e
#define SWI_TmpNam                 0x6f
#define SWI_InstallHandler         0x70
#define SWI_GenerateError          0x71


/* Now the SWI numbers and reason codes for RDI (Angel) monitors.  */
#define AngelSWI_ARM                    0x123456
#ifdef __thumb__
#define AngelSWI                        0xAB
#else
#define AngelSWI                        AngelSWI_ARM
#endif
/* For Thumb-2 code use the BKPT instruction instead of SWI.  */
#ifdef __thumb2__
#define AngelSWIInsn                    "bkpt"
#define AngelSWIAsm                     bkpt
#else
#define AngelSWIInsn                    "swi"
#define AngelSWIAsm                     swi
#endif

/* The reason codes:  */
#define AngelSWI_Reason_Open            0x01
#define AngelSWI_Reason_Close           0x02
#define AngelSWI_Reason_WriteC          0x03
#define AngelSWI_Reason_Write0          0x04
#define AngelSWI_Reason_Write           0x05
#define AngelSWI_Reason_Read            0x06
#define AngelSWI_Reason_ReadC           0x07
#define AngelSWI_Reason_IsTTY           0x09
#define AngelSWI_Reason_Seek            0x0A
#define AngelSWI_Reason_FLen            0x0C
#define AngelSWI_Reason_TmpNam          0x0D
#define AngelSWI_Reason_Remove          0x0E
#define AngelSWI_Reason_Rename          0x0F
#define AngelSWI_Reason_Clock           0x10
#define AngelSWI_Reason_Time            0x11
#define AngelSWI_Reason_System          0x12
#define AngelSWI_Reason_Errno           0x13
#define AngelSWI_Reason_GetCmdLine      0x15
#define AngelSWI_Reason_HeapInfo        0x16
#define AngelSWI_Reason_EnterSVC        0x17
#define AngelSWI_Reason_ReportException 0x18
#define ADP_Stopped_ApplicationExit     ((2 << 16) + 38)
#define ADP_Stopped_RunTimeError        ((2 << 16) + 35)
